Elasticsearch as a Service!Foundを使ってみた
はじめに
Foundは、Elasticsearchクラスタを提供するサービスです。もともとはElasticとは別の会社であるfound.noがサービス提供していたのですが、2015年3月にFoundがElasticにJoinし、Elasticから提供されるサービスとなりました。
FoundはAWSにホストされており、EC2上でElasticsearchクラスタを作ってくれます。またAWSの各リージョンに分散した形でクラスタを作ることもできます。AWSはマルチキャストが使えないことから、AWS上でクラスタを作るには一工夫必要なのですが、GUI上でポチポチするだけで簡単にElasticsearchクラスタが作れる、というのはすごいですね!
このFound、2つのプランがあります。StanadrdプランでもElasticsearchクラスタ、Kibana 4、バックアップツールなどが使えますが、Premiumプランでは更にShield、Watcher、Marvelが使え、かつSLAベースのサポートが受けられます。
さて、Foundでは14日間のフリートライアルが用意されています。早速使ってみました!
やってみた
フリートライアルの申し込み
FoundのWebサイトから、[Free Trial]のリンクをクリックします。
フリートライアルは、クレジットカードの登録なしに、メールアドレスだけで始められます。超便利。メールアドレスを入力して[START FREE TRIAL]ボタンをクリックします。
すると、登録したメールアドレスに以下内容のメールが届きますので、[Start Trial]ボタンをクリックします。
以下、パスワード設定画面になります。パスワード文字列を入力し、[Set]ボタンをクリックします。
これでフリートライアルの申し込みは完了です![creating an Elasticsearch cluster]リンクをクリックして、早速Elasticsearchクラスタを作ってみましょう!
Elasticsearchクラスタの作成
Elasticsearchクラスタの作成画面では、いくつかのオプションを選択します。まずはCapacity。このキャパシティで料金が変わります。今回はメモリ1GB、ストレージ8GBの最小構成で作成します。
次にRegion。AWS上でホストされていますので、そのままAWSのリージョンとなります。ちゃんとTokyoリージョンが選択可能なところがナイスですね。
Fault toleranceとして、Elasticsearchクラスタのデータセンタ(リージョン)分散の設定が可能です。複数リージョンに分散させることで可用性の高いElasticsearchクラスタが構成できます!フリートライアルでも2データセンター分散が可能です。
VersionでElasticsearchのバージョンを指定します。現時点では1.7.1しか選べませんでした。
Dynamic scripts機能の有効化を選択します。クレジットカードを登録しないと使えません。
Shardingについて設定します。
Automatic index creationの設定をします。
Indexをワイルドカードで削除可能にするかの設定です。
Pluginの設定をします。kuromojiがちゃんと入っているのが嬉しいですね。
Elasticsearchクラスタの名前を指定します。ここまでで設定値は完了、[Create]ボタンをクリックします。
これで Elasticsearchクラスタが作成されます!EndpointはHTTPとHTTPSの2種類が用意されます。またDashboardから簡単に各種ダッシュボードを利用可能です。
使ってみる
まずは接続確認。問題ないですね。この状態だとEndpointが分かっていれば誰でも使えちゃいますが、FoundではShieldを使ったAccess Controlが用意されています。
$ curl -XGET http://xxxxxx.ap-northeast-1.aws.found.io:9200 { "status" : 200, "name" : "instance-0000000000", "cluster_name" : "xxxxxx", "version" : { "number" : "1.7.1", "build_hash" : "xxxxxx", "build_timestamp" : "2015-07-29T09:54:16Z", "build_snapshot" : false, "lucene_version" : "4.10.4" }, "tagline" : "You Know, for Search" }
とりあえず、サンプルデータを投入してみましょう。10 Minute Walk Throughのサンプルデータ(shakespeare.json)を使いました。
$ curl -XPUT http://xxxxxx.ap-northeast-1.aws.found.io:9200/shakespeare -d ' { "mappings" : { "_default_" : { "properties" : { "speaker" : {"type": "string", "index" : "not_analyzed" }, "play_name" : {"type": "string", "index" : "not_analyzed" }, "line_id" : { "type" : "integer" }, "speech_number" : { "type" : "integer" } } } } }'; $ curl -XPUT http://xxxxxx.ap-northeast-1.aws.found.io:9200/_bulk --data-binary @shakespeare.json
さて、Dashboardsからheadをクリックします。
こんな感じで、普通にheadが使えます。
では次にKibanaをクリックします。
するとKibanaが表示され...あれ、これKibana 3ですね。
再度ElasticsearchクラスタのConfiguration画面を開くと、Kibana 4についてのオプションがありました。[Enable]ボタンをクリックします。
少し待つと、Kibana 4が Enabledになり、Kibana 4へアクセスするリンクが表示されます。
はい、ちゃんとKibana 4が使えますね!
さいごに
フルマネージドでかつサポートが受けられる形でElasticsearchが使える、しかも簡単に!これはすごいサービスですね。